1. Technical Field
The present invention relates to information computing technology. More particularly, the present invention relates to providing means for virtualizing hardware that is not available to a system.
2. Description of Related Art
The proliferation of computing devices within all organizational levels has reached some critical facilities management and cost limits. Many organizations"" IT (Information Technology) professionals are being inundated with heterogenous IS (Information Systems) requirements while being constrained with stringent budgetary requirements. Many times IT professional are forced to choose between competing IS strategies for maintaining the IT system. Many times a decision is made to upgrade only the desktop systems and applications that are considered mission critical while merely maintaining other legacy systems on an ad hoc basis. These IS strategies greatly reduce the network""s efficiency because network servers must support a wide variety of desktop systems and applications. Additionally, overall IT expenses increase dramatically as the support bandwidth increases for supporting these heterogenous systems.
Total cost of ownership (TCO) is the catch phrase for many current IT professionals and their supervisors. TCO is the cost of using a computer. It includes the cost of the hardware, software and upgrades as well as the cost of the in-house IT staff and/or consultants that provide training and technical support. TCO strategies mandate where and when to upgrade, the choice of upgrades and even decisions on leasing versus buying, and in-house IT professional as opposed to contract labor.
The recent development of the network computer or NC seemed to give IT professionals hope that users of legacy desktops and applications could be given the processing capabilities as mission critical systems without over taxing the IS budget. It was hoped that the TCO could be dramatically reduced from an estimate that ranged as high as $39,000.00 per desktop PC in early 1998. Simply stated, a NC is a computer with minimal memory, disk storage and processor power designed to connect to a network, especially the Internet. The idea behind NCs is that many users who are connected to a network don""t need all the computer power they get from a typical personal computer, and that at least the processing power can be provided by a remote server location.
NCs are really a variation on an old ideaxe2x80x94diskless workstationsxe2x80x94which are computers that contain memory and a processor but no disk storage. Instead, they rely on a server to store data. NCs take this idea one step further by also minimizing the amount of memory and processor power required by the workstation. Network computers designed to connect to an Internet are sometimes called Internet boxes, Net PCs, and Internet appliances.
There are numerous varieties of NCs, but they mostly run a compact operating system that can be booted from the server. The operating system generally hosts a Web browser, which launches the Java Virtual Machine when a Java application is downloaded. The browser also downloads HTML pages from the intranet or Internet, as does any browser in a PC. One of the strongest arguments behind NCs is that they reduce the TCOxe2x80x94not only because the machines themselves are less expensive than PCs, but also because network computers can be administered and updated from a central network server.
Originally NCs were designed as xe2x80x9cthin clientsxe2x80x9d that download all applications from the network server and obtain all of their data from a server and stored all changes back to a server. The attraction of the original NC concept is twofold. Since everything is maintained at the server side, software is installed and upgraded in one place rather than at each client station. And, of course, NCs are promoted as the best way to lower the cost of computer maintenance and therefore TCO.
However, the original NC concept has been somewhat tarnished with the introduction of Net PCs. The Net PC is a type of NC designed cooperatively by Microsoft and Intel. Net PCs can be configured as a fully loaded PC (fat clients) or as NCs (thin clients). The inclusion of additional legacy hardware devices enables the Net PC to support a wider range of applications than a typical NC. In some respects, the Net PC fat client configuration is really just a PC since it is able to install Windows and execute Windows applications locally from a server. The fat client configuration greatly increases the overall cost of the system, even when compared to a typically configured PC.
However, Net PCs also include features to simplify connecting it to a network and to administer it remotely. This is the Net PC""s thin client configuration. As a thin client Net PCs function similar to NCs and obtain their operating system (OS) from a server. One major difference between typical NCs and Net PCs is that Net PCs have expanded hardware requirements even when configured as a thin client. For instance, a Net PC must have all necessary legacy hardware present for supporting certain applications or to successfully operate an OS locally. It must also have all the onboard hardware necessary for subsequent upgrading to a fat client or PC. These features make even the thin client configuration of a Net PC more expensive than a NC on a per unit basis. A more important consideration for IT professionals is that users of Net PCs tend to require more and more upgrades until the Net PC is configured equivalently to that of a PC, a very expensive PC. NC users, on the other hand, do not require constant upgrading because typical NCs do not allow for PC-type re-configuring; it is simply not possible to re-configure a NC as a PC. However, the same lack of hardware support for PC-type configurations that makes NCs popular among ITs and their superiors, makes them unpopular among certain users who realize a need for applications needing certain types of legacy hardware, as well as, OS processing.
It would be advantageous to provide a method for expanding local services supported by network computers with a minimum of additional on-board hardware.
The present invention relates to a system and method for virtualizing hardware that is not available to a system. Initially a system management interrupt (SMI) trap detects an application accessing a memory location associated with a physical hardware device. The SMI trap receives the device address for the address bus and compares that address with memory addresses for hardware devices being virtualized by virtual device simulators. If the address matches an available virtual hardware device, the SMI caches the address, intercepts and caches the corresponding IO instruction for the memory address and issues a SMI. A SMI handler receives the SMI and determines which virtual device simulator to call. Once activated by the SMI handler, the virtual device simulator interacts with the application and then returns control to the processor.